package cn.jingyuan.swan.system.service;

import cn.jingyuan.swan.system.domain.gateway.entity.GatewayRoute;

import java.util.List;

/**
 * 路由服务
 */
public interface GatewayRouteService {

    /**
     * 添加路由
     *
     * @param route 路由
     *
     * @return routeId
     */
    Long addRoute(GatewayRoute route);

    /**
     * 删除路由
     *
     * @param routeId 路由 id
     *
     * @return 删除条目数
     */
    Integer removeRoute(Long routeId);

    /**
     * 删除路由
     *
     * @param routeIds 路由 id
     *
     * @return 删除条目数
     */
    Integer removeRoute(List<Long> routeIds);

    /**
     * 更新路由
     *
     * @param route 路由信息
     */
    void updateRoute(GatewayRoute route);

    /**
     * 获取路由
     *
     * @param routeId 路由 id
     *
     * @return
     */
    GatewayRoute getById(Long routeId);

    /**
     * 依据路由名称获取路由
     *
     * @param routeName 路由名称
     *
     * @return 路由
     */
    GatewayRoute getByRouteName(String routeName);

    /**
     * 获取路由列表
     *
     * @return 路由列表
     */
    List<GatewayRoute> getRoutes();

    /**
     * 查询路由是否存在
     *
     * @param routeId 路由 id
     *
     * @return true：存在、false：不存在
     */
    Boolean isExist(Long routeId);

    /**
     * 查询路由是否存在
     *
     * @param routeName 路由名称
     *
     * @return true：存在、false：不存在
     */
    Boolean isExist(String routeName);

}
